<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <script>
   var fn = function (a, b, c) {return a + b + c}; ;
    function curryIt(fn){
  // 声明一个数组来累计参数，等到参数个数符合fn函数的参数个数的时候直接调fn函数结束这次函数调用
    let argc = []
    return result = function(argc1){
      // 将每次的参数积攒进来
        argc.push(argc1)
      // 如果积攒的参数个数符合fn的参数个数
      if(argc.length >= fn.length){
        // 在这里直接return 结束这次函数执行
        return fn.apply(result,argc)
      }else{
        // 没攒够的话 继续return自身
        return result
      }
    }
}
console.log(curryIt(fn)(1)(2)(3))
  </script>
</body>
</html>